/**
 * Paquete que contiene los objetos.
 */
package co.sumset.objetos;

/**
 * Clase Laser, poder el cual representa el objeto que elimina al Agente.
 * 
 * @author Cristian Raul Pineda Rodriguez
 */
public class Laser extends Actor {

	/**
	 * Metodo Constructor. Inicializa los recursos para el actor Laser.
	 * 
	 * @param stage
	 */
	public Laser(Escenario stage) {
		super(stage);
		setSpriteNames( new String[] {"/juego/disparo0.gif","/juego/disparo1.gif","/juego/disparo2.gif"});
		setFrameSpeed(10);
	}

	/**
	 * Metodo que establece el comportamiento del Laser en el juego.
	 * Cuando el laser llega al limite de altura es removido.
	 */
	public void act() {
		super.act();
		$varY+=stage.getAdministrador().getNivel().getLaser_speed();
		if ($varY > Escenario.HEIGHT)
			remove();
	}
	
	/**
	 * Este metodo permite verificar las collisiones con otros Actores en el 
	 * caso del Laser si los Actores son: Bomba,Bala o Invoccion; si estos 
	 * colisionan con el Laser este es removido del escenario y aumenta el
	 * puntaje de juego en 5 puntos.
	 * 
	 * @param a ; Recibe los actores que colisionan en el Escenario con el Laser.
	 */
	public void collision(Actor a) {

		if (a instanceof Bomba ||a instanceof Bala||a instanceof Invocacion) {
			remove();
			stage.getAgente().addScore(5);	
		}
	}
}